package com.naiterui.ehp.bs.patient.prodocl;

import java.io.Serializable;

import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.springframework.data.mongodb.core.mapping.Field;

import org.slf4j.LoggerFactory;

/**
 * 消息中的用户信息部分
 * <P>File name : User.java </P>
 * <P>Author : zhouyanxin </P>
 * <P>Date : 2015年6月19日 </P>
 */
public class Chater implements IChecker, Serializable {

    /**
     * 字段或域定义：<code>serialVersionUID</code>
     */
    private static final long serialVersionUID = 7975222923207811935L;

    /**
     * LOGGER
     */
    private static final Logger LOGGER = LoggerFactory.getLogger(Chater.class);

    /**
     * 用户Id
     */
    @Field(value = "id")
    private Long id;

    /**
     * 用户名称
     */
    private String name;

    /**
     * 用户头像
     */
    private String headImg;

    /**
     * 检测信息的正确性以及完整性
     * Chater.selfValidate()<BR>
     * <P>Author : zhouyanxin </P>
     * <P>Date : 2015年6月21日 </P>
     * @return
     */
    @Override
    public boolean selfValidate() {
        if (this.id == null || this.id <= 0) {
            LOGGER.error("message chater attribute [id] is null!");
            return false;
        }
        if (StringUtils.isEmpty(this.name)) {
            LOGGER.error("message chater attribute [name] is null!");
            return false;
        }
        return true;
    }

    /**
     * @return Long 取得域 id 的方法。
     */
    public Long getId() {
        return this.id;
    }

    /**
     * @param id 对域 id 的设置方法.
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * @return String 取得域 name 的方法。
     */
    public String getName() {
        return this.name;
    }

    /**
     * @param name 对域 name 的设置方法.
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * @return String 取得域 headImg 的方法。
     */
    public String getHeadImg() {
        return this.headImg;
    }

    /**
     * @param headImg 对域 headImg 的设置方法.
     */
    public void setHeadImg(String headImg) {
        this.headImg = headImg;
    }
}
